/*
* 给定一个数组[0,1,2,1,5,0,3,4,6,1,0,0,4,9]
* 把其中的0移动到数组最后面，其他元素位置保持不变
*
* 方法一：
* 找到0，计数，把非零数移到新数组，最后在新数组补全0的个数
*
* 我的方法：
* 创建一个数组接收非零数字，再创建一个数组接收所有0，最后将非零数组与0数组合并后返回
*
* */

//我自己写的方法
function moveZero(array){
    let newArr = []
    let arrZero = []
    for(let i = 0; i < array.length; i++){
        if(array[i] === 0){
            arrZero.push(array[i])
        }else{
            newArr.push(array[i])
        }
    }
    return newArr.concat(arrZero)
}

let oldArr = [0,1,2,1,5,0,3,4,6,1,0,0,4,9]
moveZero(oldArr)

//万老的方法:0与非0的数字不断交换
function moveZeroByWan(arr){
    for(let i = 0, j = 0; i < arr.length; i++){
        if(arr[i] !== 0){
            let temp = arr[j]
            arr[j] = arr[i]
            arr[i] = temp
            j++
        }
    }
    return arr
}

let arr1 = [0,0,1,2,2,1,0,4,56]
moveZeroByWan(arr1)